<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //题目：请定义一个变量a,要求是能保证这个变量a只能被指定操作（如加1，乘2），而不能进行其他操作。
        //在java等语言当中有私有属性概念，但是js中没有，只能用闭包来模拟。
        //封装一个函数，这个函数的功能是私有化变量
        function fun(){
            var a=2;
            return{
                getA:function(){
                    return a
                },
                add:function(){
                    return a+1
                },
                pow:function(){
                    return a*=2;
                }
            }
        }
        var obj=fun()
        //如果想在fun函数外面使用变量a，唯一的方法就是调用fun()返回的obj的getA的方法。
        console.log(obj.getA())//2
        console.log(obj.add())//3
        console.log(obj.pow())//4

    </script>
</body>
</html>